#coding:utf-8

import os

def get_all_files(path):
    all_file=[]
    #遍历这个路径下的所有路径，文件，文件夹
    for dir_path, dir_names, file_names in os.walk(path):
        #for dir in dirnames:
            #allfile.append(os.path.join(dirpath,dir))
        for name in file_names:
            all_file.append(os.path.join(dir_path,name))
    #返回所有带路径文件名称
    return  all_file

def copy_all_files(all_file, dir):
    for file in all_file:
        with open(file, 'rb') as f1:
            (file_path, temp_file_name) = os.path.split(file)

            #判断当前路径是否存在
            if os.path.exists(dir):
                pass
            else:
                #路径不存在就创建此路径，创建多层路径
                os.makedirs(dir)
            
            #拼接完整的路径
            copy_file_path = os.path.join(dir, temp_file_name)

            #创建B路径下的文件，通AAAAAA路径下路径一致
            with open(copy_file_path, 'wb') as f2:
                #复制AAAAAA的文件到B下
                f2.write(f1.read())
            #关闭AAAAAA文件夹下的文件
            f1.close()
            #关闭B文件夹下的文件
            f2.close()

def copy_all_files_by_ext(all_file, dir, ext):
    for file in all_file:
        with open(file, 'rb') as f1:
            (file_path, temp_file_name) = os.path.split(file)

            if ext in file:
                f1.close()
                continue
            #判断当前路径是否存在
            if os.path.exists(dir):
                pass
            else:
                #路径不存在就创建此路径，创建多层路径
                os.makedirs(dir)
            
            #拼接完整的路径
            copy_file_path = os.path.join(dir, temp_file_name)

            #创建B路径下的文件，通AAAAAA路径下路径一致
            with open(copy_file_path, 'wb') as f2:
                #复制AAAAAA的文件到B下
                f2.write(f1.read())
            #关闭AAAAAA文件夹下的文件
            f1.close()
            #关闭B文件夹下的文件
            f2.close()

def copy_all_files_in_ext(all_file, dir, ext):
    for file in all_file:
        with open(file, 'rb') as f1:
            (file_path, temp_file_name) = os.path.split(file)

            if ext not in file:
                f1.close()
                continue
            #判断当前路径是否存在
            if os.path.exists(dir):
                pass
            else:
                #路径不存在就创建此路径，创建多层路径
                os.makedirs(dir)
            
            #拼接完整的路径
            copy_file_path = os.path.join(dir, temp_file_name)

            #创建B路径下的文件，通AAAAAA路径下路径一致
            with open(copy_file_path, 'wb') as f2:
                #复制AAAAAA的文件到B下
                f2.write(f1.read())
            #关闭AAAAAA文件夹下的文件
            f1.close()
            #关闭B文件夹下的文件
            f2.close()

if __name__ == '__main__':

    filament_root_build_path = ''
    target_root_path = ''
    #debug lib
    all_debug_libs = []
    all_debug_libs.append(os.path.join(filament_root_build_path,"Base\\gcm.cache\\Base.gcm"))
    all_debug_libs.append(os.path.join(filament_root_build_path,"Core\\gcm.cache\\Core.gcm"))
    

    target_debug_lib_path = os.path.join(target_root_path, "Zoo\\gcm.cache\\")


    copy_all_files(all_debug_libs, target_debug_lib_path)

	#os.system("pause")